 #include <R.h>
#include"string.h"


int recopier(char c,char*res,int*posres,int avant){
//cette fonction décide si le prochain caractère doit être recopié

  if(avant&&c=='t'&&(*posres)>7&&res[(*posres)-1]=='p'&&res[(*posres)-2]=='i'&&res[(*posres)-3]=='r'&&res[(*posres)-4]=='c'&&res[(*posres)-5]=='s'&&res[(*posres)-6]=='<'&&res[(*posres)-8]!='(') {(*posres)-=6;/*Rprintf("<script\n");*/return 0;}
  if(avant&&c=='T'&&(*posres)>7&&res[(*posres)-1]=='P'&&res[(*posres)-2]=='I'&&res[(*posres)-3]=='R'&&res[(*posres)-4]=='C'&&res[(*posres)-5]=='S'&&res[(*posres)-6]=='<'&&res[(*posres)-8]!='(') {(*posres)-=6;/*Rprintf("<SCRIPT\n");*/return 0;}
  if(!avant&&c=='>'&&(*posres)>8&&res[(*posres)-1]=='t'&&res[(*posres)-2]=='p'&&res[(*posres)-3]=='i'&&res[(*posres)-4]=='r'&&res[(*posres)-5]=='c'&&res[(*posres)-6]=='s'&&res[(*posres)-7]=='/'&&res[(*posres)+2]!=')') {(*posres)+=1;/*Rprintf("/script>\n");*/return 1;}
  if(!avant&&c=='>'&&(*posres)>8&&res[(*posres)-1]=='T'&&res[(*posres)-2]=='P'&&res[(*posres)-3]=='I'&&res[(*posres)-4]=='R'&&res[(*posres)-5]=='C'&&res[(*posres)-6]=='S'&&res[(*posres)-7]=='/'&&res[(*posres)+2]!=')') {(*posres)+=1;/*Rprintf("/SCRIPT>\n");*/return 1;}
   
   return avant;
}

void supp_script(char**text){
//supprime dans la chaîne text les scripts de la forme : <script...> ... </script>
  int size=strlen(*text),postext=0,posres=0;
  char res[size+1];
  int recop=1;
  do{
    if(recop) recop=recopier((*text)[postext],res,&posres,recop);
    else recop=recopier((*text)[postext],(*text),&postext,recop);
    if(recop) res[posres++]=(*text)[postext];
    postext++;
  }while((*text)[postext]!='\0');
  res[posres]=(*text)[postext]; 
  (*text)=res;
}
